# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=VI

# VI:   buffer_load_dword v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x50,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x50 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_load_dword v1, off, s[4:7], s1 offset:4 ; encoding: [0x04,0x00,0x50,0xe0,0x00,0x01,0x01,0x01]
0x04 0x00 0x50 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_load_dword v1, off, s[4:7], s1 offset:4 glc ; encoding: [0x04,0x40,0x50,0xe0,0x00,0x01,0x01,0x01]
0x04 0x40 0x50 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_load_dword v1, off, s[4:7], s1 offset:4 slc ; encoding: [0x04,0x00,0x52,0xe0,0x00,0x01,0x01,0x01]
0x04 0x00 0x52 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_load_dword v1, off, s[4:7], s1 offset:4 tfe ; encoding: [0x04,0x00,0x50,0xe0,0x00,0x01,0x81,0x01]
0x04 0x00 0x50 0xe0 0x00 0x01 0x81 0x01

# VI:   buffer_load_dword v1, off, s[4:7], s1 glc tfe ; encoding: [0x00,0x40,0x50,0xe0,0x00,0x01,0x81,0x01]
0x00 0x40 0x50 0xe0 0x00 0x01 0x81 0x01

# VI:   buffer_load_dword v1, off, s[4:7], s1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x52,0xe0,0x00,0x01,0x81,0x01]
0x04 0x40 0x52 0xe0 0x00 0x01 0x81 0x01

# VI:   buffer_load_dword v1, v2, s[4:7], s1 offen ; encoding: [0x00,0x10,0x50,0xe0,0x02,0x01,0x01,0x01]
0x00 0x10 0x50 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 ; encoding: [0x04,0x10,0x50,0xe0,0x02,0x01,0x01,0x01]
0x04 0x10 0x50 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 glc ; encoding: [0x04,0x50,0x50,0xe0,0x02,0x01,0x01,0x01]
0x04 0x50 0x50 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 slc ; encoding: [0x04,0x10,0x52,0xe0,0x02,0x01,0x01,0x01]
0x04 0x10 0x52 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 tfe ; encoding: [0x04,0x10,0x50,0xe0,0x02,0x01,0x81,0x01]
0x04 0x10 0x50 0xe0 0x02 0x01 0x81 0x01

# VI:   buffer_load_dword v1, v2, s[4:7], s1 offen glc tfe ; encoding: [0x00,0x50,0x50,0xe0,0x02,0x01,0x81,0x01]
0x00 0x50 0x50 0xe0 0x02 0x01 0x81 0x01

# VI:   buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 glc slc tfe ; encoding: [0x04,0x50,0x52,0xe0,0x02,0x01,0x81,0x01]
0x04 0x50 0x52 0xe0 0x02 0x01 0x81 0x01

# VI:   buffer_load_dword v1, v2, s[4:7], s1 idxen ; encoding: [0x00,0x20,0x50,0xe0,0x02,0x01,0x01,0x01]
0x00 0x20 0x50 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 ; encoding: [0x04,0x20,0x50,0xe0,0x02,0x01,0x01,0x01]
0x04 0x20 0x50 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 glc ; encoding: [0x04,0x60,0x50,0xe0,0x02,0x01,0x01,0x01]
0x04 0x60 0x50 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 slc ; encoding: [0x04,0x20,0x52,0xe0,0x02,0x01,0x01,0x01]
0x04 0x20 0x52 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 tfe ; encoding: [0x04,0x20,0x50,0xe0,0x02,0x01,0x81,0x01]
0x04 0x20 0x50 0xe0 0x02 0x01 0x81 0x01

# VI:   buffer_load_dword v1, v2, s[4:7], s1 idxen glc tfe ; encoding: [0x00,0x60,0x50,0xe0,0x02,0x01,0x81,0x01]
0x00 0x60 0x50 0xe0 0x02 0x01 0x81 0x01

# VI:   buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 glc slc tfe ; encoding: [0x04,0x60,0x52,0xe0,0x02,0x01,0x81,0x01]
0x04 0x60 0x52 0xe0 0x02 0x01 0x81 0x01

# VI:   buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen ; encoding: [0x00,0x30,0x50,0xe0,0x02,0x01,0x01,0x01]
0x00 0x30 0x50 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 ; encoding: [0x04,0x30,0x50,0xe0,0x02,0x01,0x01,0x01]
0x04 0x30 0x50 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc ; encoding: [0x04,0x70,0x50,0xe0,0x02,0x01,0x01,0x01]
0x04 0x70 0x50 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 slc ; encoding: [0x04,0x30,0x52,0xe0,0x02,0x01,0x01,0x01]
0x04 0x30 0x52 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 tfe ; encoding: [0x04,0x30,0x50,0xe0,0x02,0x01,0x81,0x01]
0x04 0x30 0x50 0xe0 0x02 0x01 0x81 0x01

# VI:   buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe ; encoding: [0x00,0x70,0x50,0xe0,0x02,0x01,0x81,0x01]
0x00 0x70 0x50 0xe0 0x02 0x01 0x81 0x01

# VI:   buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc slc tfe ; encoding: [0x04,0x70,0x52,0xe0,0x02,0x01,0x81,0x01]
0x04 0x70 0x52 0xe0 0x02 0x01 0x81 0x01

# VI:   buffer_store_dword v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x70 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_store_dword v1, off, s[4:7], s1 offset:4 ; encoding: [0x04,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
0x04 0x00 0x70 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_store_dword v1, off, s[4:7], s1 offset:4 glc ; encoding: [0x04,0x40,0x70,0xe0,0x00,0x01,0x01,0x01]
0x04 0x40 0x70 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_store_dword v1, off, s[4:7], s1 offset:4 slc ; encoding: [0x04,0x00,0x72,0xe0,0x00,0x01,0x01,0x01]
0x04 0x00 0x72 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_store_dword v1, off, s[4:7], s1 offset:4 tfe ; encoding: [0x04,0x00,0x70,0xe0,0x00,0x01,0x81,0x01]
0x04 0x00 0x70 0xe0 0x00 0x01 0x81 0x01

# VI:   buffer_store_dword v1, off, s[4:7], s1 glc tfe ; encoding: [0x00,0x40,0x70,0xe0,0x00,0x01,0x81,0x01]
0x00 0x40 0x70 0xe0 0x00 0x01 0x81 0x01

# VI:   buffer_store_dword v1, off, s[4:7], s1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x72,0xe0,0x00,0x01,0x81,0x01]
0x04 0x40 0x72 0xe0 0x00 0x01 0x81 0x01

# VI:   buffer_store_dword v1, v2, s[4:7], s1 offen ; encoding: [0x00,0x10,0x70,0xe0,0x02,0x01,0x01,0x01]
0x00 0x10 0x70 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 ; encoding: [0x04,0x10,0x70,0xe0,0x02,0x01,0x01,0x01]
0x04 0x10 0x70 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 glc ; encoding: [0x04,0x50,0x70,0xe0,0x02,0x01,0x01,0x01]
0x04 0x50 0x70 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 slc ; encoding: [0x04,0x10,0x72,0xe0,0x02,0x01,0x01,0x01]
0x04 0x10 0x72 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 tfe ; encoding: [0x04,0x10,0x70,0xe0,0x02,0x01,0x81,0x01]
0x04 0x10 0x70 0xe0 0x02 0x01 0x81 0x01

# VI:   buffer_store_dword v1, v2, s[4:7], s1 offen glc tfe ; encoding: [0x00,0x50,0x70,0xe0,0x02,0x01,0x81,0x01]
0x00 0x50 0x70 0xe0 0x02 0x01 0x81 0x01

# VI:   buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 glc slc tfe ; encoding: [0x04,0x50,0x72,0xe0,0x02,0x01,0x81,0x01]
0x04 0x50 0x72 0xe0 0x02 0x01 0x81 0x01

# VI:   buffer_store_dword v1, v2, s[4:7], s1 idxen ; encoding: [0x00,0x20,0x70,0xe0,0x02,0x01,0x01,0x01]
0x00 0x20 0x70 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 ; encoding: [0x04,0x20,0x70,0xe0,0x02,0x01,0x01,0x01]
0x04 0x20 0x70 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 glc ; encoding: [0x04,0x60,0x70,0xe0,0x02,0x01,0x01,0x01]
0x04 0x60 0x70 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 slc ; encoding: [0x04,0x20,0x72,0xe0,0x02,0x01,0x01,0x01]
0x04 0x20 0x72 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 tfe ; encoding: [0x04,0x20,0x70,0xe0,0x02,0x01,0x81,0x01]
0x04 0x20 0x70 0xe0 0x02 0x01 0x81 0x01

# VI:   buffer_store_dword v1, v2, s[4:7], s1 idxen glc tfe ; encoding: [0x00,0x60,0x70,0xe0,0x02,0x01,0x81,0x01]
0x00 0x60 0x70 0xe0 0x02 0x01 0x81 0x01

# VI:   buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 glc slc tfe ; encoding: [0x04,0x60,0x72,0xe0,0x02,0x01,0x81,0x01]
0x04 0x60 0x72 0xe0 0x02 0x01 0x81 0x01

# VI:   buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen ; encoding: [0x00,0x30,0x70,0xe0,0x02,0x01,0x01,0x01]
0x00 0x30 0x70 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 ; encoding: [0x04,0x30,0x70,0xe0,0x02,0x01,0x01,0x01]
0x04 0x30 0x70 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc ; encoding: [0x04,0x70,0x70,0xe0,0x02,0x01,0x01,0x01]
0x04 0x70 0x70 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 slc ; encoding: [0x04,0x30,0x72,0xe0,0x02,0x01,0x01,0x01]
0x04 0x30 0x72 0xe0 0x02 0x01 0x01 0x01

# VI:   buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 tfe ; encoding: [0x04,0x30,0x70,0xe0,0x02,0x01,0x81,0x01]
0x04 0x30 0x70 0xe0 0x02 0x01 0x81 0x01

# VI:   buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe ; encoding: [0x00,0x70,0x70,0xe0,0x02,0x01,0x81,0x01]
0x00 0x70 0x70 0xe0 0x02 0x01 0x81 0x01

# VI:   buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc slc tfe ; encoding: [0x04,0x70,0x72,0xe0,0x02,0x01,0x81,0x01]
0x04 0x70 0x72 0xe0 0x02 0x01 0x81 0x01

# VI:   buffer_load_format_x v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x00,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x00 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_load_format_xy v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x04,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x04 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_load_format_xyz v[1:3], off, s[4:7], s1 ; encoding: [0x00,0x00,0x08,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x08 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_load_format_xyzw v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x0c,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x0c 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_store_format_x v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x10,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x10 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_store_format_xy v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x14,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x14 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_store_format_xyz v[1:3], off, s[4:7], s1 ; encoding: [0x00,0x00,0x18,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x18 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_store_format_xyzw v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x1c,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x1c 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_load_ubyte v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x40,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x40 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_load_sbyte v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x44,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x44 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_load_ushort v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x48,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x48 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_load_sshort v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x4c,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x4c 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_load_dword v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x50,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x50 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_load_dwordx2 v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x54,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x54 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_load_dwordx3 v[0:2], off, s[4:7], s0 offset:4095 ; encoding: [0xff,0x0f,0x58,0xe0,0x00,0x00,0x01,0x00]
0xff,0x0f,0x58,0xe0,0x00,0x00,0x01,0x00

# VI:   buffer_load_dwordx4 v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x5c,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x5c 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_store_byte v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x60,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x60 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_store_short v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x68,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x68 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_store_dword v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x70 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_store_dwordx2 v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x74,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x74 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_store_dwordx3 v[0:2], off, s[4:7], s0 offset:4095 ; encoding: [0xff,0x0f,0x78,0xe0,0x00,0x00,0x01,0x00]
0xff,0x0f,0x78,0xe0,0x00,0x00,0x01,0x00

# VI:   buffer_store_dwordx4 v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x7c,0xe0,0x00,0x01,0x01,0x01]
0x00 0x00 0x7c 0xe0 0x00 0x01 0x01 0x01

# VI:   buffer_wbinvl1   ; encoding: [0x00,0x00,0xf8,0xe0,0x00,0x00,0x00,0x00]
0x00 0x00 0xf8 0xe0 0x00 0x00 0x00 0x00

# VI: buffer_wbinvl1_vol ; encoding: [0x00,0x00,0xfc,0xe0,0x00,0x00,0x00,0x00]
0x00 0x00 0xfc 0xe0 0x00 0x00 0x00 0x00

# VI:   buffer_atomic_inc v1, off, s[8:11], 56 ; encoding: [0x00,0x00,0x2c,0xe1,0x00,0x01,0x02,0xb8]
0x00 0x00 0x2c 0xe1 0x00 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, off, s[8:11], 56 slc ; encoding: [0x00,0x00,0x2e,0xe1,0x00,0x01,0x02,0xb8]
0x00 0x00 0x2e 0xe1 0x00 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, off, s[8:11], s4 slc ; encoding: [0x00,0x00,0x2e,0xe1,0x00,0x01,0x02,0x04]
0x00 0x00 0x2e 0xe1 0x00 0x01 0x02 0x04

# VI:   buffer_atomic_inc v1, off, s[8:11], 56 offset:4 ; encoding: [0x04,0x00,0x2c,0xe1,0x00,0x01,0x02,0xb8]
0x04 0x00 0x2c 0xe1 0x00 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, off, s[8:11], 56 offset:4 slc ; encoding: [0x04,0x00,0x2e,0xe1,0x00,0x01,0x02,0xb8]
0x04 0x00 0x2e 0xe1 0x00 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v2, s[8:11], 56 offen ; encoding: [0x00,0x10,0x2c,0xe1,0x02,0x01,0x02,0xb8]
0x00 0x10 0x2c 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v2, s[8:11], 56 offen slc ; encoding: [0x00,0x10,0x2e,0xe1,0x02,0x01,0x02,0xb8]
0x00 0x10 0x2e 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 ; encoding: [0x04,0x10,0x2c,0xe1,0x02,0x01,0x02,0xb8]
0x04 0x10 0x2c 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v2, s[8:11], s4 offen offset:4 ; encoding: [0x04,0x10,0x2c,0xe1,0x02,0x01,0x02,0x04]
0x04 0x10 0x2c 0xe1 0x02 0x01 0x02 0x04

# VI:   buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 slc ; encoding: [0x04,0x10,0x2e,0xe1,0x02,0x01,0x02,0xb8]
0x04 0x10 0x2e 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v2, s[8:11], 56 idxen ; encoding: [0x00,0x20,0x2c,0xe1,0x02,0x01,0x02,0xb8]
0x00 0x20 0x2c 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v2, s[8:11], 56 idxen slc ; encoding: [0x00,0x20,0x2e,0xe1,0x02,0x01,0x02,0xb8]
0x00 0x20 0x2e 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 ; encoding: [0x04,0x20,0x2c,0xe1,0x02,0x01,0x02,0xb8]
0x04 0x20 0x2c 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 slc ; encoding: [0x04,0x20,0x2e,0xe1,0x02,0x01,0x02,0xb8]
0x04 0x20 0x2e 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v2, s[8:11], s4 idxen offset:4 slc ; encoding: [0x04,0x20,0x2e,0xe1,0x02,0x01,0x02,0x04]
0x04 0x20 0x2e 0xe1 0x02 0x01 0x02 0x04

# VI:   buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen ; encoding: [0x00,0x30,0x2c,0xe1,0x02,0x01,0x02,0xb8]
0x00 0x30 0x2c 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v[2:3], s[8:11], s4 idxen offen ; encoding: [0x00,0x30,0x2c,0xe1,0x02,0x01,0x02,0x04]
0x00 0x30 0x2c 0xe1 0x02 0x01 0x02 0x04

# VI:   buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen slc ; encoding: [0x00,0x30,0x2e,0xe1,0x02,0x01,0x02,0xb8]
0x00 0x30 0x2e 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 ; encoding: [0x04,0x30,0x2c,0xe1,0x02,0x01,0x02,0xb8]
0x04 0x30 0x2c 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 slc ; encoding: [0x04,0x30,0x2e,0xe1,0x02,0x01,0x02,0xb8]
0x04 0x30 0x2e 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, off, s[8:11], 56 glc ; encoding: [0x00,0x40,0x2c,0xe1,0x00,0x01,0x02,0xb8]
0x00 0x40 0x2c 0xe1 0x00 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, off, s[8:11], 56 glc slc ; encoding: [0x00,0x40,0x2e,0xe1,0x00,0x01,0x02,0xb8]
0x00 0x40 0x2e 0xe1 0x00 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, off, s[8:11], s4 glc slc ; encoding: [0x00,0x40,0x2e,0xe1,0x00,0x01,0x02,0x04]
0x00 0x40 0x2e 0xe1 0x00 0x01 0x02 0x04

# VI:   buffer_atomic_inc v1, off, s[8:11], 56 offset:4 glc ; encoding: [0x04,0x40,0x2c,0xe1,0x00,0x01,0x02,0xb8]
0x04 0x40 0x2c 0xe1 0x00 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, off, s[8:11], 56 offset:4 glc slc ; encoding: [0x04,0x40,0x2e,0xe1,0x00,0x01,0x02,0xb8]
0x04 0x40 0x2e 0xe1 0x00 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v2, s[8:11], 56 offen glc ; encoding: [0x00,0x50,0x2c,0xe1,0x02,0x01,0x02,0xb8]
0x00 0x50 0x2c 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v2, s[8:11], 56 offen glc slc ; encoding: [0x00,0x50,0x2e,0xe1,0x02,0x01,0x02,0xb8]
0x00 0x50 0x2e 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 glc ; encoding: [0x04,0x50,0x2c,0xe1,0x02,0x01,0x02,0xb8]
0x04 0x50 0x2c 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v2, s[8:11], s4 offen offset:4 glc ; encoding: [0x04,0x50,0x2c,0xe1,0x02,0x01,0x02,0x04]
0x04 0x50 0x2c 0xe1 0x02 0x01 0x02 0x04

# VI:   buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 glc slc ; encoding: [0x04,0x50,0x2e,0xe1,0x02,0x01,0x02,0xb8]
0x04 0x50 0x2e 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v2, s[8:11], 56 idxen glc ; encoding: [0x00,0x60,0x2c,0xe1,0x02,0x01,0x02,0xb8]
0x00 0x60 0x2c 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v2, s[8:11], 56 idxen glc slc ; encoding: [0x00,0x60,0x2e,0xe1,0x02,0x01,0x02,0xb8]
0x00 0x60 0x2e 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 glc ; encoding: [0x04,0x60,0x2c,0xe1,0x02,0x01,0x02,0xb8]
0x04 0x60 0x2c 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 glc slc ; encoding: [0x04,0x60,0x2e,0xe1,0x02,0x01,0x02,0xb8]
0x04 0x60 0x2e 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v2, s[8:11], s4 idxen offset:4 glc slc ; encoding: [0x04,0x60,0x2e,0xe1,0x02,0x01,0x02,0x04]
0x04 0x60 0x2e 0xe1 0x02 0x01 0x02 0x04

# VI:   buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen glc ; encoding: [0x00,0x70,0x2c,0xe1,0x02,0x01,0x02,0xb8]
0x00 0x70 0x2c 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v[2:3], s[8:11], s4 idxen offen glc ; encoding: [0x00,0x70,0x2c,0xe1,0x02,0x01,0x02,0x04]
0x00 0x70 0x2c 0xe1 0x02 0x01 0x02 0x04

# VI:   buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen glc slc ; encoding: [0x00,0x70,0x2e,0xe1,0x02,0x01,0x02,0xb8]
0x00 0x70 0x2e 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 glc ; encoding: [0x04,0x70,0x2c,0xe1,0x02,0x01,0x02,0xb8]
0x04 0x70 0x2c 0xe1 0x02 0x01 0x02 0xb8

# VI:   buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 glc slc ; encoding: [0x04,0x70,0x2e,0xe1,0x02,0x01,0x02,0xb8]
0x04 0x70 0x2e 0xe1 0x02 0x01 0x02 0xb8

#===------------------------------------------------------------------------===#
# Lds support
#===------------------------------------------------------------------------===#

# VI:   buffer_load_sbyte v5, off, s[8:11], s3 lds ; encoding: [0x00,0x00,0x45,0xe0,0x00,0x05,0x02,0x03]
0x00,0x00,0x45,0xe0,0x00,0x05,0x02,0x03

# VI:   buffer_load_sbyte v5, off, s[8:11], s3 glc slc lds ; encoding: [0x00,0x40,0x47,0xe0,0x00,0x05,0x02,0x03]
0x00,0x40,0x47,0xe0,0x00,0x05,0x02,0x03

# VI:   buffer_load_sbyte v5, off, s[8:11], s3 offset:4095 glc slc lds ; encoding: [0xff,0x4f,0x47,0xe0,0x00,0x05,0x02,0x03]
0xff,0x4f,0x47,0xe0,0x00,0x05,0x02,0x03

# VI:   buffer_load_sbyte v5, v0, s[8:11], s3 offen offset:4095 slc lds ; encoding: [0xff,0x1f,0x47,0xe0,0x00,0x05,0x02,0x03]
0xff,0x1f,0x47,0xe0,0x00,0x05,0x02,0x03

# VI:   buffer_load_sbyte v5, v0, s[8:11], s3 offen lds ; encoding: [0x00,0x10,0x45,0xe0,0x00,0x05,0x02,0x03]
0x00,0x10,0x45,0xe0,0x00,0x05,0x02,0x03

# VI:   buffer_load_sbyte v5, v0, s[8:11], s3 idxen glc slc lds ; encoding: [0x00,0x60,0x47,0xe0,0x00,0x05,0x02,0x03]
0x00,0x60,0x47,0xe0,0x00,0x05,0x02,0x03

# VI:   buffer_load_sbyte v5, v[0:1], s[8:11], s3 idxen offen offset:4095 lds ; encoding: [0xff,0x3f,0x45,0xe0,0x00,0x05,0x02,0x03]
0xff,0x3f,0x45,0xe0,0x00,0x05,0x02,0x03

# VI:   buffer_load_sbyte v5, v[0:1], s[8:11], s3 idxen offen offset:4095 glc slc lds ; encoding: [0xff,0x7f,0x47,0xe0,0x00,0x05,0x02,0x03]
0xff,0x7f,0x47,0xe0,0x00,0x05,0x02,0x03

# VI:   buffer_load_ubyte v5, off, s[8:11], s3 offset:4095 lds ; encoding: [0xff,0x0f,0x41,0xe0,0x00,0x05,0x02,0x03]
0xff,0x0f,0x41,0xe0,0x00,0x05,0x02,0x03

# VI:   buffer_load_sshort v5, v0, s[8:11], s3 offen offset:4095 glc slc lds ; encoding: [0xff,0x5f,0x4f,0xe0,0x00,0x05,0x02,0x03]
0xff,0x5f,0x4f,0xe0,0x00,0x05,0x02,0x03

# VI:   buffer_load_ushort v5, v0, s[8:11], s3 idxen offset:4095 glc slc lds ; encoding: [0xff,0x6f,0x4b,0xe0,0x00,0x05,0x02,0x03]
0xff,0x6f,0x4b,0xe0,0x00,0x05,0x02,0x03

# VI:   buffer_load_dword v5, v0, s[8:11], s101 offen lds ; encoding: [0x00,0x10,0x51,0xe0,0x00,0x05,0x02,0x65]
0x00,0x10,0x51,0xe0,0x00,0x05,0x02,0x65

# VI:   buffer_load_format_x v5, v[0:1], s[8:11], s3 idxen offen offset:4095 glc slc lds ; encoding: [0xff,0x7f,0x03,0xe0,0x00,0x05,0x02,0x03]
0xff,0x7f,0x03,0xe0,0x00,0x05,0x02,0x03

# VI:   buffer_store_lds_dword s[4:7], s0 lds ; encoding: [0x00,0x00,0xf5,0xe0,0x00,0x00,0x01,0x00]
0x00,0x00,0xf5,0xe0,0x00,0x00,0x01,0x00

# VI:   buffer_store_lds_dword s[4:7], s0 offset:4095 lds ; encoding: [0xff,0x0f,0xf5,0xe0,0x00,0x00,0x01,0x00]
0xff,0x0f,0xf5,0xe0,0x00,0x00,0x01,0x00

# VI:   buffer_store_lds_dword s[4:7], s8 offset:4 lds glc slc ; encoding: [0x04,0x40,0xf7,0xe0,0x00,0x00,0x01,0x08]
0x04,0x40,0xf7,0xe0,0x00,0x00,0x01,0x08
